
;(function(){
	var 
		// 输出到浏览器的方法。
		 write
		// 添加一个HTML的首部到响应。
		,addHeader
		// 输出二进制数据，不进行任何字符的转换。
		,binaryWrite;
	
	if($$.Server.isNodeJS){
		write	= $$.emptyFn;
		// @todo
		addHeader = function(){
			
		}
	}else if($$.Server.isASP){
		write = function(){
			Response.write(arguments[0]);
		}
		
		addHeader = function(key, value){
			Response.addHeader(key, value);
		}
		binaryWrite = function(key, value){
			Response.binaryWrite(arguments[0]);
		}
	}
	
	function _Response(){
		this.addEvent(
			 'write'
			,'beforeWrite'
		);
	}
	_Response.prototype = {
		 write		: write
		,addHeader	: addHeader
		,binaryWrite: binaryWrite
		
		/**
		 * @type {String} HTTP内容类型。默认值是text/HTML
		 */
		,contentType: 'text/html'
		
		/**
		 * @type {Number} HTTP状态代码。
		 */
		,statusCode : 0
		
		,setFormat	: function(contentType){
			this.contentType = contentType;
		}
		,setText	: function(data){
			return (data);
		}
		,setJSON	: function(data){
			this.contentType = 'text/json';
			return $$.JSON.encode(data);
		}
		,setXML		: function(data, wrapTag, isCDATA){
			
			this.contentType = 'text/xml';
			
			if(typeof data == 'string'){
				if(wrapTag && !isCDATA){
					data = '<{0}>{1}</{0}>'.format(wrapTag, data);
				}else if(wrapTag && isCDATA){
					data = '<{0}>' + ("<![CD" + "ATA[") + "{1}" + ("]>" + ">")  + '</{0}>'.format(wrapTag, data.replace(("]>" +">"), "]&gt;&gt;"));
				}
				return data;
			}else{
				data = $$.XML.json2xml(data);
			}
			return datal		
		}
		,setHTML	: function(data){
			if(typeof data == 'string'){
				return data;
			}else{
				
			}
		}
	};
})();